//解构 赋值 
// 按照一定模式，从数组或对象中提取值，对变量进行赋值

// 将123 赋值 给 变量 a
// let a=123;

// 传统 将数组中的每一个值 提取 赋值给 变量
// let b=[1,2,3];

// let b1=b[0];
// let b2=b[1];
// let b3=b[2];

// es6 ；
// ---完全解构赋值
// let [b1,b2,b3]=[1,2,3];
// console.log(b1,b2,b3)

//------可以为空
// let [c1,,c2]=[2,3,4,5,6];
// console.log(c1,c2);

// ----默认值，如果没有 使用默认值
// let [d1,d2="bb"]=[2];
// console.log(d1,d2)

// ---- ... 剩余的组成数组 赋值给变量
// let [e1,e2,...e3]=[1,2,3,4,5];
// console.log(e1,e2,e3)
// // e1=1,e2=2, e3=[3,4,5]



// 对象的解构赋值 

// es5 传统 
// let obj={"name":"gao","age":18};
// let name=obj.name;
// let age=obj.age;

//es6 
//1、基本 --变量名 和 属性名 必须一样
// let {name,age}={"name":"gao","age":18};
// console.log(name,"----",age)

//2、别名 属性名：别名
// let {nameadjaldjflasjdfl:n,age}={"nameadjaldjflasjdfl":"gao","age":18};
// console.log(n)

//3、默认值
// let {name,age=18}={"name":"gao"};
// console.log(name,"----",age)

//4、 ... 剩余 组成 新对象 赋值给变量
// let {name,...x}={"name":"gao","age":19,"class":1910};
// console.log(name,x)



// 字符串的解构赋值
// let str="abcde";
// // console.log(str[1])
// let [str1,str2,,str3,...str4]="abcdef";
// console.log(str1,str2,str3,str4)



// 1、交换变量的值
// let x=1;
// let y=2;

//  [y,x]=[x,y]
// console.log(x,y)

//2、合并数组，合并对象

// let arr1=[1,2,3];
// let arr2=[4,5,6];
// // arr1=[1,2,3,4,5,6]
// arr1=[...arr2,...arr1]
// console.log(arr1)